﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using UFSoft.UBF.UI.MD.Runtime;

namespace UFIDA.U9.Cust.Cli.PrintStrategy
{
    /// <summary>
    /// 打印策略 解决批量打印不能打印客开打印模板问题
    /// 需要在UBF打印模板上 报表属性-文档信息中配置
    /// 策略类型全称 UFIDA.U9.Cust.Cli.PrintStrategy.BatchPrintOneStrategy
    /// 策略程序集 UFIDA.U9.Cust.Cli.PrintStrategy
    /// </summary>
    public class BatchPrintOneStrategy : UFSoft.UBF.PrintStrategy.PrintProcessStrategy
    {
        // private static readonly UFSoft.UBF.Util.Log.ILogger logger = LoggerManager.GetLogger(typeof(MKMOPrintStrategy));
        /// <summary>
        /// 给打印模板中的参数传递值
        /// </summary>
        /// <returns></returns>
        public override UFSoft.UBF.Report.Filter.FilterModel.FilterValues CreatePrintTemplateParameters()
        {
            string paramValue = "";
            if (this.PrintSettings.ListBatchExportInfo != null)
            {
                //批量打印模式下每个勾选行都会调用一次
                //取当前单据的序号
                long mainID = this.PrintSettings.MainViewID;//获取当前主实体的MainID（列表可以取到）
                paramValue = mainID.ToString();
            }
            else
            {
                //单据卡片打印
                IUIView uiView = this.CurrentModel.Views[0];
                paramValue = uiView.FocusedRecord["ID"].ToString();
            }

            UFSoft.UBF.Report.Filter.FilterModel.FilterValues returnFilterValues = new UFSoft.UBF.Report.Filter.FilterModel.FilterValues();
            UFSoft.UBF.Report.Filter.FilterModel.FilterValue param = new UFSoft.UBF.Report.Filter.FilterModel.FilterValue();
            //这个名字是你的打印模板中的参数的名字
            param.Name = "ID";//存储过程参数
            param.AddValue(paramValue); //存储过程参数值
            param.RelationOperator = UFSoft.UBF.Report.Filter.enuOperatorListType.Equal;//匹配符 等于
            returnFilterValues.Add(param);
            return returnFilterValues;
        }
    }
}
